package br.com.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import br.com.bean.CidadeBean;
import br.com.bean.EstadoBean;

public class CidadeDao {
	public void inserir(Connection conn, CidadeBean value) throws Exception {

		String sql = "INSERT INTO cidade(id_estado, cidade) VALUES (?, ?);";
		
		PreparedStatement ps = conn.prepareStatement(sql);
		ps.setInt(1, value.getId_estado().getId());
		ps.setString(2, value.getCidade());
		ps.execute();
		ps.close();
	}
	public void excluir(Connection conn, CidadeBean value) throws Exception {

		String sql = "DELETE FROM cidade WHERE where id = ?;";
		
		PreparedStatement ps = conn.prepareStatement(sql);
		ps.setInt(1, value.getId());
		ps.executeUpdate();
	}
	public void alterar(Connection conn, CidadeBean value)throws Exception{

		String sql = "UPDATE cidade  SET id_estado=?, cidade=? WHERE id = ?;";
		
		PreparedStatement ps = conn.prepareStatement(sql);
			ps.setInt(1, value.getId_estado().getId());
			ps.setString(2, value.getCidade());
	
		ps.execute();
		ps.close();
	}
	public ArrayList<CidadeBean> getLista(Connection conn, EstadoBean value) throws Exception{

		String sql = "SELECT id, id_estado, cidade FROM cidade where idestado = ?;";
		
		PreparedStatement ps = conn.prepareStatement(sql);
		ps.setInt(1, value.getId());
		ResultSet rs = ps.executeQuery();
		ArrayList<CidadeBean> cidade = new ArrayList<CidadeBean>();
		while(rs.next()){
			CidadeBean cid = new CidadeBean();
			cid.setId(rs.getInt("id"));
			cid.getId_estado().setId(rs.getInt("id_estado"));
			cid.setCidade(rs.getString("cidade"));
			cidade.add(cid);
		}
		return cidade;
	}
	public ArrayList<CidadeBean> getLista(Connection conn, CidadeBean value) throws Exception{

		String sql = "SELECT id, id_estado, cidade FROM cidade where id = ?;";
		
		PreparedStatement ps = conn.prepareStatement(sql);
		ps.setInt(1, value.getId());
		ResultSet rs = ps.executeQuery();
		ArrayList<CidadeBean> cidade = new ArrayList<CidadeBean>();
		while(rs.next()){
			CidadeBean cid = new CidadeBean();
			cid.setId(rs.getInt("id"));
			cid.getId_estado().setId(rs.getInt("idestado"));
			cid.setCidade(rs.getString("cidade"));
			cidade.add(cid);
		}
		return cidade;
	}
	public ArrayList<CidadeBean> getLista(Connection conn) throws Exception{

		String sql = "SELECT id, cidade FROM cidade;";
		
		PreparedStatement ps = conn.prepareStatement(sql);
		ResultSet rs = ps.executeQuery();
		ArrayList<CidadeBean> cidade = new ArrayList<CidadeBean>();
		while(rs.next()){
			CidadeBean cid = new CidadeBean();
			cid.setId(rs.getInt("id"));
			cid.setCidade(rs.getString("cidade"));
			cidade.add(cid);
		}
		return cidade;
	}
	
	//combo cidade
	public List<CidadeBean> getListaCidade(Connection conn, EstadoBean value) throws Exception{

		String sql = "SELECT * FROM cidade c WHERE c.id_estado=? and c.id = c.id order by c.cidade;";

		PreparedStatement ps = conn.prepareStatement(sql);
		ps.setInt(1, value.getId());
		ResultSet rs = ps.executeQuery();
		List<CidadeBean> cidade = new ArrayList<CidadeBean>();
		CidadeBean c = null;
		while(rs.next()){
			c = new CidadeBean();
			c.setId(rs.getInt("id"));
			c.setCidade(rs.getString("cidade"));
			cidade.add(c);
		}
		return cidade;
	}

}
